package com.zhonghui.scm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 供应链SCM-销售管理-销售计划对象 scm_sale_plan
 *
 * @author zhonghui
 * @date 2022-05-26
 */
@ApiModel("供应链SCM-销售管理-销售计划对象")
public class ScmSalePlan extends BaseEntity {

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 计划单号 */
    @Excel(name = "计划单号")
    @ApiModelProperty("计划单号")
    private String scheduleNumber;

    /** 计划标题 */
    @Excel(name = "计划标题")
    @ApiModelProperty("计划标题")
    private String scheduleTitle;

    /** 计划类型 */
    @Excel(name = "计划类型")
    @ApiModelProperty("计划类型")
    private Integer scheduleType;

    /** 起始时间 */
    @Excel(name = "起始时间")
    @ApiModelProperty("起始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /** 结束时间 */
    @Excel(name = "结束时间")
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /** 创建时间 */
    @Excel(name = "创建时间")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;

    /** 销售计划明细信息 */
    @Excel(name = "销售计划明细信息")
    @ApiModelProperty("销售计划明细信息")
    private List<ScmSalePlanItem> scmSalePlanItemList = new ArrayList<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getScheduleNumber() {
        return scheduleNumber;
    }

    public void setScheduleNumber(String scheduleNumber) {
        this.scheduleNumber = scheduleNumber;
    }

    public String getScheduleTitle() {
        return scheduleTitle;
    }

    public void setScheduleTitle(String scheduleTitle) {
        this.scheduleTitle = scheduleTitle;
    }

    public Integer getScheduleType() {
        return scheduleType;
    }

    public void setScheduleType(Integer scheduleType) {
        this.scheduleType = scheduleType;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public List<ScmSalePlanItem> getScmSalePlanItemList() {
        return scmSalePlanItemList;
    }

    public void setScmSalePlanItemList(List<ScmSalePlanItem> scmSalePlanItemList) {
        this.scmSalePlanItemList = scmSalePlanItemList;
    }

    @Override
    public String toString() {
        return "ScmSalePlan{" +
                "id=" + id +
                ", scheduleNumber='" + scheduleNumber + '\'' +
                ", scheduleTitle='" + scheduleTitle + '\'' +
                ", scheduleType=" + scheduleType +
                ", startDate=" + startDate +
                ", endDate=" + endDate +
                ", createDate=" + createDate +
                ", scmSalePlanItemList=" + scmSalePlanItemList +
                '}';
    }
}
